/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proyectoempresa.modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;

/**
 *
 * @author Diego
 */
@Entity
public class ClaseAnualGeneral implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;
    protected String sumaingresos = "0.0";
    protected String sumaegresos = "0.0";
    protected String activoTotal = "0.0";
    protected String anio ;

    @OneToMany(mappedBy = "clasepadre", cascade ={CascadeType.ALL,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH ,CascadeType.REMOVE})
    @Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
    List<ClaseAnualCuenta> listacuentas=null;
    
    public ClaseAnualGeneral() {
        listacuentas = new ArrayList<ClaseAnualCuenta>();
    }

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public List<ClaseAnualCuenta> getListacuentas() {
        return listacuentas;
    }

    public void setListacuentas(List<ClaseAnualCuenta> listacuentas) {
        this.listacuentas = listacuentas;
    }

    public String getActivoTotal() {
        return activoTotal;
    }

    public void setActivoTotal(String activoTotal) {
        this.activoTotal = activoTotal;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSumaegresos() {
        return sumaegresos;
    }

    public void setSumaegresos(String sumaegresos) {
        this.sumaegresos = sumaegresos;
    }

    public String getSumaingresos() {
        return sumaingresos;
    }

    public void setSumaingresos(String sumaingresos) {
        this.sumaingresos = sumaingresos;
    }

    public void agregar(ClaseAnualCuenta il) {
        if ((il != null) && !listacuentas.contains(il)) {
            listacuentas.add(il);
            il.setClasepadre(this);

        }
    }

    public void remover(ClaseAnualCuenta hc) {
        if (listacuentas.contains(hc)) {
            listacuentas.remove(hc);
            hc.setClasepadre(null);
        }
    }

    public void sumaIngresos() {
        Double va = 0.0;
        for (ClaseAnualCuenta claseHijaCuentas : listacuentas) {
            va = va + Double.parseDouble(claseHijaCuentas.getIngresos());
        }
        this.sumaingresos = "" + va;
    }

    public void suEgresos() {
        Double va = 0.0;
        for (ClaseAnualCuenta claseHijaCuentas : listacuentas) {
            va = va + Double.parseDouble(claseHijaCuentas.getEgresos());
        }
        this.sumaegresos = "" + va;
    }

    public void activoTotal() {
        Double va = 0.0;
        va = Double.parseDouble(this.sumaingresos) - Double.parseDouble(this.sumaegresos);
        this.activoTotal = "" + va;
    }

    @Override
    public String toString() {
        return "ClaseAnualGeneral{" + "sumaingresos=" + sumaingresos + "sumaegresos=" + sumaegresos + "activoTotal=" + activoTotal + "anio=" + anio + '}';
    }



}
